{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# True-peak detection\n",
    "\n",
    "True-peak metering takes into account the idea of inter-sample peaks.\n",
    "This means that the actual peak of the waveform is in between two adjacent samples, but it will not be possible to measure it until the signal is converted back to analog.\n",
    "In the worst case, an inter-sample peak may lay outside the digital dynamic range [-1, 1], potentially generating clipping in further stages that cannot be noticed in the digital domain.\n",
    "\n",
    "Although some sophisticated Digital to Analog Converters (DAC) can deal with inter-sample clipping, it is always better to detect it before reaching the DAC to make sure that this will not be a problem despite the conversion hardware.\n",
    "\n",
    "There are several strategies to predict the inter-sample peaks. In this notebook, we focus on the approach based on oversampling the input signal.\n",
    "\n",
    "## The ITU-R BS.1770 recommendation\n",
    "\n",
    "The ITU-R BS.1770 recommendation proposes the following signal chain based on the oversampling strategy:\n",
    "\n",
    "    -12.04dB --> x4 oversample --> LowPass --> abs() --> 20 * log10() --> +12.04dB\n",
    "\n",
    "[TruePeakDetector](https://essentia.upf.edu/reference/std_TruePeakDetector.html) implements the true-peak level meter specified in the second annex of the ITU-R BS.1770-2[1] or the ITU-R BS.1770-4[2] (default).\n",
    "In this implementation, the gain stages are suppressed as they are not required when working with float point values.\n",
    "Also the result is returned in natural units.\n",
    "Additionally, the algorithm returns the position of the samples outside the [-1, 1] range after resampling, as potential analog clipping candidates.\n",
    "\n",
    "Here we show an example of true-peak metering:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "from essentia.standard import MonoLoader, TruePeakDetector\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "plt.rcParams[\"figure.figsize\"] = (9, 5)\n",
    "\n",
    "EPS = np.finfo(np.float32).eps"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAm0AAAFVCAYAAAC9ytjjAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/d3fzzAAAACXBIWXMAAAsTAAALEwEAmpwYAACUKklEQVR4nOzdd3wVVfr48c9z00MaISGEQAglIY0eUBBQBMvasCL2supa+OlaV79rQXcVe2F1V1fXtQsKooguVhQUBUKH0EInJJBQ0vs9vz9mAiEJ6clNyPN+ve6LuXPOnHLnkjw558yMGGNQSimllFJtm8PVDVBKKaWUUnXToE0ppZRSqh3QoE0ppZRSqh3QoE0ppZRSqh1wd3UDlFJKqY5m+fLlXd3d3d8CEtEBFFWdE1hXVlZ207Bhw/ZX7NSgTSmllGpl7u7ub3Xr1i0uNDT0kMPh0Ns4qGM4nU7JzMyMz8jIeAu4oGK/RvdKKaVU60sMDQ3N0YBN1cThcJjQ0NBsrJHYo/td1B6llFKqI3NowKZqY38/jonTNGhTSimlOiA3N7dhsbGx8f369Uvo379//GOPPRZWXl7ukrYsXLjQ9/rrr+/pksob4Z577un+6KOPhgH8+c9/7v7555/71/fYHTt2eJx99tl9ABYvXuwzc+bMwPoeq2valFJKqQ7Iy8vLuXHjxhSAtLQ098suu6xPTk6O20svvbS3tdsyduzYgrFjxxY05tiysjLc3V0Xzrz88ssN+ryioqJK58+fvw0gOTnZNzk5udPll1+eXZ9jdaRNKaWU6uAiIiLK3nrrrR3//e9/uzqdTpKSkvovXrzYpyJ92LBh/X/77Tefe+65p/tll10WNWLEiP49evQY8Pe//71rRZ4JEyb0TUhIiOvXr1/C888/H1Kx39fXd8if/vSnHv369UsYNWpUzIIFC3wrjv/www8DAebNm+c/bty4fgDZ2dmOSy+9NComJiY+JiYm/p133gmqob0Dbrvttoj4+Pi4t99+u/MLL7wQkpiYGNe/f//4s846q29ubq4D4JJLLom6/vrrew4ZMiS2R48eA/773/92BigvL+fqq6+O7N27d8KoUaOiTz311H4VaYsWLfIdPnx4/4SEhLjRo0dH79y506O2z+6SSy6Jqjg2IiJiwB133BERGxsbn5iYGPfLL7/4jh49Orpnz56Jzz77bCjApk2bPKOjoxOKiopk2rRp3b/88svOsbGx8W+++Wbnus6TjrQppZRSrnbHHRHV9o0dm8fll2dTWCjcd1/3aulnnpnDxIm5HDzo4JFHwo9Je+21tIY2IT4+vqS8vJy0tDT36667Luutt94KGTVq1O41a9Z4FRcXO0aOHFn46aefdk5NTfVevHjxpsOHD7vFxcUl3n///ZleXl7mww8/3BEWFlael5cnQ4YMib/66qsPdevWrbywsNAxfvz4nDfeeGPPGWec0ffhhx+OWLRo0eYVK1Z433DDDb2vuuqqY0aZHnzwwfCAgIDyzZs3pwBkZma61dTeLl26lKWkpGwAyMjIcLv33nuzAO68887u06dPD/nrX/+6H2Dfvn0eycnJG1etWuV90UUX9bvhhhsOvffee513797tmZqauj4tLc09MTEx8frrrz9QXFwsd955Z+RXX32V2r1797I333yz83333Rfx6aef7qjv5xgZGVmycePGlD/+8Y89b7zxxqglS5ZsLCwsdAwYMCDhgQceyKzI5+3tbR566KG9ycnJnd57771d9SlbgzallFJKHeP6668/9Nxzz4UXFxfvef3110OuvPLKrIq0M88887CPj4/x8fEpCw4OLt2zZ4973759S5955pmwr776KgggIyPDY/369d7dunXL9/DwMJdeemkOQEJCQqGXl5fTy8vLjBgxojAtLc2zat0LFy4MmDFjxraK96GhoTUutLv22msPVWwvX77c59FHH43Izc11y8/Pdzv11FOPBIIXXHDBYTc3N4YNG1Z04MABD4BFixb5XXzxxYfc3NyIjIwsO/nkk3MB1qxZ47Vlyxaf008/PQbA6XQSGhpa2pDPbtKkSYcBBgwYUJCfn+/o3Lmzs3Pnzk5PT09nVlZWjQFofWnQppRSSrlabSNjPj6m1vTgYGdjRtaqSklJ8XRzcyMiIqLM4XAwZsyYnI8++iho7ty5wStXrkypyOfl5XXkqlc3NzfKyspk3rx5/j///LN/cnLyRn9/f+eIESP6FxYWOgDc3d2Nw2GtxnI4HEeOd3Nzo7y8XBrbXn9/f2fF9i233NJ71qxZqSNHjiycPn16l59//vnIhQHe3t5H2mtM7RfsGmOkX79+hatWrdrY2HZV1OdwOPD09DxSocPhoLS0tNH9BV3TppRSSnV4e/fudb/55pt73XDDDfsrAqxb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ZWCMmQ88i3V18i6sc/OYfVyA/dkcsvcfAJ6rpV9KqVait/xQqg2xb/nxgTHmrRrSoqh0e5Bmrvc2YLIxpsaF8fYtP6KNMS5dBKzUiaIt3PJj69atHrfccktkamqqj9PpZMKECdn/+te/9tR0NeSOHTs8br311p7z58/fVluZp556ar/Zs2dvDwkJafANw++5557ufn5+5U888USdT4hYuHCh79tvv93lnXfeqc963BZpQ2vQW34opRCRcBE5RUQcItIfuJem3aZEKdWSlv0nmOdjBjA1aBjPxwxg2X9qHY2ui9Pp5MILL+x3wQUXHN65c+e67du3r8vPz3fcdddd1W6WW1paSlRUVGldARvAzz//nNqYgK2hxo4dW9DcAVt7oEGbUh2TJ9btLnKBH7GmPv/p0hYppWq27D/BfPNQL/L2eYKBvH2efPNQr6YEbl9++aW/l5eX86677joA1rMyX3/99d0zZ84Myc3NdUyfPr3L6aef3u/kk0+OGTVqVP9NmzZ5RkdHJ4B1r7JzzjmnT9++fRPOOOOMvgMHDoxduHChL0BERMSA9PR0902bNnn26dMnYfLkyb369euXcMopp0Tn5eUJwAsvvBCSmJgY179///izzjqrb25ubq2xyNtvv905Ojo6oX///vFJSUn9wbrR7rhx4/oB7N27133UqFHR/fr1S7j88st7de/evdnb0FboA+OVakOMMafVkraD2q90bEg9O4HEBuRvlnqVUjX4/I6e7E/xPW56xtpOOEuP/T9YVuzgf3+JYuUHoTUe0zW+gAtfO+5I1Nq1a30GDRpUUHlfcHCwMzw8vCQlJcULYP369b5r1qxZHxYWVr5p0ybPinzPPfdcaFBQUPnWrVvXL1u2zHvkyJE13eCZXbt2eX/wwQfbRo0atfOcc87p895773W+/fbbD1511VWH7r333iyAO++8s/v06dND/vrXv+4/Xluffvrp8G+//XZz7969S7Oystyqpj/44IPdTz311Nxp06ZlzJo1K+CTTz45cjFTc7WhrWgXkaVSSinVYVUN2Ora30zGjBmTExYWVm2qc/HixX5XXHHFQYDhw4cXxcTEFFQ/GiIiIopHjRpVCDBkyJCCHTt2eAEsX77cZ9iwYf1jYmLiZ8+e3WX9+vXeNR1fISkpKe+qq66KeuGFF0LKyqov5126dKnfdddddxDg0ksv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",
      "text/plain": [
       "<Figure size 648x360 with 3 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sr = 44100\n",
    "\n",
    "audio_file = \"../../../test/audio/recorded/distorted.wav\"\n",
    "audio = MonoLoader(filename=audio_file)()\n",
    "\n",
    "times = np.arange(len(audio)) / sr\n",
    "oversampled_times = np.arange(len(audio) * 4) / (sr * 4)\n",
    "\n",
    "peak_locations, output = TruePeakDetector(version=2)(audio)\n",
    "\n",
    "n = 3  # Show three examples.\n",
    "f, axes = plt.subplots(n)\n",
    "f.subplots_adjust(hspace=0.9)\n",
    "for idx in range(n):\n",
    "    p_idx = idx * 100\n",
    "    l0 = axes[idx].axhline(0, color=\"r\", alpha=0.7, ls=\"--\")\n",
    "    l1 = axes[idx].plot(oversampled_times, 20 * np.log10(output + EPS), alpha=0.8)\n",
    "    l2 = axes[idx].plot(times, 20 * np.log10(np.abs(audio + EPS)), marker=\"o\")\n",
    "    l3 = axes[idx].plot(peak_locations / sr, np.zeros(len(peak_locations)), color=\"r\", marker=\"x\", linestyle=\"None\")\n",
    "\n",
    "    axes[idx].set_xlim([peak_locations[p_idx] / sr - 0.0002, peak_locations[p_idx] / sr + 0.0002])\n",
    "    axes[idx].set_ylim([-0.15, 0.15])\n",
    "    axes[idx].set_title(\"Clipping peak located at {:.2f}s\".format(peak_locations[p_idx] / (sr * 4)))\n",
    "    axes[idx].set_ylabel(\"dB\")\n",
    "\n",
    "f.legend([l0, l1[-1], l2[-1], l3[-1]], [\"Dynamic range limit (dB)\", \"Oversampled signal\", \"Original signal\", \"Clipped samples\"])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The resampled signal is closer to the analog signal once it goes through the DAC. The part of this signal peaking above 1 may produce additional distortion if the analog amplifier doesn't have enough headroom to handle this additional amplitude. As this type of distortion depends entirely on the design of the playback hardware, it is always recommended to produce music so the true peak positions never overcome the dynamic range [-1, 1].\n",
    "\n",
    "## References\n",
    "\n",
    "[1] Series, B. S. (2011). Recommendation ITU-R BS.1770-2. Algorithms to measure audio programme loudness and true-peak audio level, https://www.itu.int/dms_pubrec/itu-r/rec/bs/R-REC-BS.1770-2-201103-S!!PDF-E.pdf\n",
    "\n",
    "[2] Series, B. S. (2011). Recommendation ITU-R BS.1770-4. Algorithms to measure audio programme loudness and true-peak audio level, https://www.itu.int/dms_pubrec/itu-r/rec/bs/R-REC-BS.1770-4-201510-I!!PDF-E.pdf"
   ]
  }
 ],
 "metadata": {
  "interpreter": {
   "hash": "31f2aee4e71d21fbe5cf8b01ff0e069b9275f58929596ceb00d14d90e3e16cd6"
  },
  "kernelspec": {
   "display_name": "Python 3.8.10 64-bit",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}